package com.agritech.chain;

public class EmergencyAvoidanceHandler extends AbstractSafetyHandler {
    public EmergencyAvoidanceHandler() {
        super("紧急避障策略处理器");
    }

    @Override
    protected boolean canHandle(String requestType) {
        return "OBSTACLE_DETECTED".equalsIgnoreCase(requestType);
    }

    @Override
    protected void processRequest(String details) {
        System.out.println("执行紧急避障: " + details + ". 立即停车并尝试规避。");
        // 模拟避障成功或失败
        if (details.contains("小型")) {
            System.out.println("成功避开小型障碍物。");
        } else {
            System.out.println("大型障碍物，紧急避障失败，需要进一步处理。");
            // 如果有更高级别的处理，可以在这里传递，或者由调用方决定
            // 在此简单示例中，我们假设如果此处理器无法完全解决，则问题仍然存在
            // 实际应用中，可能需要将处理结果反馈给责任链的调用者或下一个处理器
            if (nextHandler != null) {
                 System.out.println("尝试将 '大型障碍物未解决' 事件传递给下一个处理器（如果存在特定逻辑）");
                 // nextHandler.handleRequest("OBSTACLE_NOT_AVOIDED", "大型障碍物未能通过紧急避障解决: " + details);
            } else {
                System.out.println("紧急避障处理器是责任链末端或后续处理器不处理此类细化事件。");
            }
        }
    }
}